package com.education.ai.service;

import com.education.ai.entity.TeachingPlan;
import org.springframework.data.domain.Pageable;
import java.util.List;

public interface TeachingPlanService {
    /**
     * 查询所有教学计划
     */
    List<TeachingPlan> findAll();
    
    /**
     * 分页查询所有教学计划
     */
    List<TeachingPlan> findAll(Pageable pageable);
    
    /**
     * 根据ID查询教学计划
     */
    TeachingPlan findById(Long id);
    
    /**
     * 保存教学计划
     */
    TeachingPlan save(TeachingPlan teachingPlan);
    
    /**
     * 根据ID删除教学计划
     */
    void deleteById(Long id);
    
    /**
     * 根据学科查找教学计划
     */
    List<TeachingPlan> findBySubject(String subject);
    
    /**
     * 根据年级查找教学计划
     */
    List<TeachingPlan> findByGrade(String grade);
    
    /**
     * 查找模板教学计划
     */
    List<TeachingPlan> findTemplates();
    
    /**
     * 根据教师ID查询教学计划
     */
    List<TeachingPlan> findByTeacherId(String teacherId);
    
    /**
     * 根据教师ID分页查询教学计划
     */
    List<TeachingPlan> findByTeacherId(String teacherId, Pageable pageable);
    
    /**
     * 计算总记录数
     */
    long count();
    
    /**
     * 计算某教师的教学计划总数
     */
    long countByTeacherId(String teacherId);
} 